1 Wstęp

Niniejszy raport jest efektem prac zespołu nad zbiorem danych dotyczących aktywności fizycznych rejestrowanych przy pomocy telefonu. Zbiór ten jest szczegółowo opisany w następnym paragrafie. (Link do zbioru)
Celem projektu było sprawdzenie, czy z samych danych naturalnie wynika ich podział na \(6\) grup tak, jak to wynika z metody ich pozyskania.

2 Opis zbioru danych

Analizowane dane to zbiór \(561\) kolumn po \(10299\) obserwacji. Reprezentują one zebrane sygnały od \(30\) wolontariuszy i wolontariuszkek, z których każda osoba wykonywała \(6\) czynności:
1. Chodzenie po płaskiej powierzchni,
2. Chodzenie po schodach w górę,
3. Chodzenie po schodach w dół,
4. Siadanie,
5. Wstawanie,
6. Kładzenie się.
Każda z nich wykonywana była przez około \(1\) minutę i \(15\) sekund. W czasie ich wykonywania testerzy posiadali przyczepiony do pasa telefon komórkowy, którym wykonywane były pomiary za pomocą akcelerometru oraz żyroskopu. Wideo pokazujące przykładowy pomiar można obejrzeć tutaj.
Następnie dane pocięte zostały na \(2.56\) sekundowe fragmenty (nazwane oknami - ang. windows) nakładające się na siebie. Na tych właśnie fragmentach policzone zostały różne statystyki, m.in. średnia, mediana, maksimum, minimum, odchylenie standardowe, miara energii (Energy measure), suma kwadratów podzielona przez liczbę wartości, entropia (Signal entropy) i wiele innych. Na koniec statystyki te zostały jeszcze przeskalowane. Tak powstało \(265\) kolumn danych. Następne \(289\) powstało podobnie z tą różnicą, że każde z okien zostało przetworzone algorytmem Szybkiej Transformaty Fouriera (FFT). Ostatnie \(7\) natomiast, jest to kąt między wektorem grawitacji, a mierzonym parametrem.

3 PCA

Ze względu na wielkość danych postanowiono podjąć próbę zmniejszenia ich wymiarów za pomocą algorytmu PCA.

Po przeskalowaniu danych za pomocą PCA wyraźnie można zauważyć podział zbioru na \(2\) grupy:
1. Grupa pierwsza:
a) Chodzenie po płaskim,
b) Chodzenie po schodach w górę,
c) Chodzenie po schodach w dół,
2. Grupa druga:
a) Siadanie,
b) Wstawanie,
c) Kładzenie się.

Co jednak napawa pesymizmem, nie wygląda na to, żeby wewnątrz tych grup łatwo było je od siebie rozróżnić.

Ponadto można zaobserwować, że czynności z pierwszej grupy wydają się łatwiejsze w odróżnieniu niż te z drugiej. Okazuje się jednak, że na wykresie pierwszej kolumny z czwartą można zyskać odwrotne przekonanie, co widać poniżej:

4 t-SNE

W celu uzyskania innej perspektywy w spojrzeniu na rozmieszczenie punktów w przestrzeni, zdecydowaliśmy się spojrzeć na te dane po wykonaniu na nich algorytmu t-SNE, który służy do zrzutowania wektorów wielowymiarowych na mniejszą liczbę wymiarów w taki sposób, żeby zachować wzajemne rozmieszczenie punktów.
Ponieważ t-SNE jest dość kosztowne obliczeniowo, wybraliśmy losowo \(1000\) wierszy oraz \(30\) pierwszych kolumn z PCA.

Być może dało by się wydzielić grupę pierwszych trzech czynności od drugiej trójki, widac też dość dobrze skupioną czynność nr \(6\). Jednak ten wykres nie napawa zbytnim optymizmem. Należy jednak zwrócić uwagę, że nie są to pełne dane.

5 Podziały według algorytmów klasteryzacji

W naszych eksperymentach postanowiliśmy badać jedynie przygotowaną wcześniej część testową danych (podział na zbiory test i train został wprowadzony przez autorów zbioru), który stanowi około \(30\%\) wszytskich rekordów. Wzięliśmy pierwsze \(100\) kolumn po PCA, ponieważ odpowiadają one aż za \(77\%\) wariancji.

5.1 k-means

Algorytm k-means ustala centroidy, względem których ustalana jest przynależność punktów do klastrów.

Metoda łokcia i miara silhouette dla sprawdzenia, czy z danych wynika, że \(6\) powinno być dobrą ilościa klastrów:

Jak widzimy, dla \(k\ =\ 7\) algorytm bardzo gubi się i podział nie jest laprzy od wcześniej wykonanego, czyli dla \(k\ =\ 6\). Jest to znak, że powinniśmy rozwarzyć \(k\ =\ 6\), gdyż potem dzieje się coś niedobrego.

Sprawdźmy jak wygląda podział na \(7\) klastrów i czemu jest on taki słaby:

Widzimy więc, że algorytm nie zdecydował się na podział typu \(3-4\), lecz na \(2-5\), co miało swój efekt w niskich wynikach jakości rozwiązania.

5.1.1 k-means - podział na 6

Następujący wykres przedstawia rozłożenie zmodelowanych klastrów

Na tym wykresie widzimy rozłożenie w oryginalnych danych

Silhouette:

## [1] 0.1211752

DB score:

## [1] 2.387466

Dunn index:

## [1] 0.1349831

Indeksy FM i AR (podobieństwo do “prawdziwego podziału”):

## [1] 0.6188029
## [1] 0.541395

5.2 Genie

5.2.1 Metoda łokcia i silhouette dla genie

Genie to algorytm aglomeracyjny, czyli opiera swoje działanie na iteracyjnym łączeniu za sobą mniejszych klastrów w większe skupiska. Jego autorzy podkreślają też jego szybkość działania.

Metoda łokcia i miara silhouette dla sprawdzenia, czy z danych wynika, że \(6\) powinno być dobrą ilościa klastrów:

Nieprawdą byłoby stwierdzenie, że wykres ten sugeruje wybór \(k\ =\ 6\). Jednakże na pewno go nie odradza.

5.2.2 genie - podział na 6

Następujący wykres przedstawia rozłożenie zmodelowanych klastrów

Na tym wykresie widzimy rozłożenie w oryginalnych danych Silhouette:

## [1] 0.1404017

DB score:

## [1] 2.854378

Dunn index:

## [1] 0.2199702

Indeksy FM i AR (podobieństwo do “prawdziwego podziału”):

## [1] 0.7149085
## [1] 0.6436648

6 Podział na 2

Skoro wyszstkie algorytmy według miary silhouette informują nas, że najbardziej optymalnym jest podział tego zbioru na \(2\) grupy, to spróbujmy równiez tego podziału. Podzielmy najpierw zbiór na \(2\), zgodnie z propozycją algorytmów.

Zauważmy, iż podział ten, zgodnie z oczekiwani, jest porównywalny z oryginalnym podziałem według czynności:

Grupie o indeksie \(1\) odpowiadają czynności siadania, wstawania oraz leżenia. Grupie o indeksie \(2\) odpowiadają czynności chodzenia po płaskim, chodzenia po schodach w górę oraz chodzenia po schodach w dół.
Sprawdźmy jaki podział każdej z tych części jest optymalny:

6.1 Pierwsza grupa

Wygląda więc na to, że zbiór ten powinien być podzielony na \(2\) części, ale następny w kolejce jest podział na \(3\). Przyjżyjmy się proponowanemu podziałowi.

Jest on trochę podobny do oryginalnego, szczególnie klaster \(3\) jest podobny do czynności leżenia.

6.2 Druga grupa

Podział ten w żadnym stopniu nie przypomina tego, czego oczekiwaliśmy.

7 GMM

W dalszej części raportu opisujemy podział zbioru za pomocą algorytmu Gaussian Mixture Models.

7.1 łokieć z miarą Bayesian information criterion

Tak samo jak we wcześniejszych wykresach tego typu - nieprawdą byłoby stwierdzenie, że wykres ten sugeruje wybór \(k\ =\ 6\). Jednakże na pewno go nie odradza. Jest to ostatni moment, kiedy wynik spada o \(50000\), a potem już o co najwyżej \(~25000\), czyli \(50\%\) mniej.

7.2 Miara silhouette

Wykres ten uparcie wciąż sugeruje, żeby zdecydować się na podział na \(2\) kalstry. Gdybyśmy jednak uparcie chciali podzielić na większą ich ilość, to, na podstawie tego wykresu można wnioskować, że dobrym pomysłem byłby wybór \(6\) lub \(7\) klastrów.

7.3 Testowanie odpowiednich parametrów

7.3.1 GMM random_spread

Metoda GMM dla wyboru random_spread i metryki euklidesowej.

Silhouette:

## [1] 0.1260754

DB score:

## [1] 2.713602

Dunn index:

## [1] 0.1465879

Indeksy FM i AR (podobieństwo do “prawdziwego podziału”):

## [1] 0.4848875
## [1] 0.3762544

7.3.2 GMM - metryka manhattan

Dla porównania prezentujemy metod GMM dla wyboru random_spread i metryki Manhattan.

Silhouette:

## [1] 0.1477339

DB score:

## [1] 1.750563

Dunn index:

## [1] 0.1573143

Indeksy FM i AR (podobieństwo do “prawdziwego podziału”):

## [1] 0.4566879
## [1] 0.2895716

7.3.3 GMM random_subset

Metoda GMM dla wyboru random_subset i metryki euklidesowej. Metryka Manhattan wykonuje się jeszcze gorzej, więc opuścimy jej przedstawaienie.

Silhouette:

## [1] 0.1209228

DB score:

## [1] 2.530765

Dunn index:

## [1] 0.1284906

Indeksy FM i AR (podobieństwo do “prawdziwego podziału”):

## [1] 0.491171
## [1] 0.3824514

7.3.4 GMM static_spread

Metoda GMM dla wyboru static_spread i metryki euklidesowej. Metryka Manhattan wykonuje się jeszcze gorzej, więc opuścimy jej przedstawaienie.

Silhouette:

## [1] 0.1014939

DB score:

## [1] 2.616788

Dunn index:

## [1] 0.1416974

Indeksy FM i AR (podobieństwo do “prawdziwego podziału”):

## [1] 0.5027006
## [1] 0.3812041

7.3.5 GMM static_subset + maha_dist

Metoda GMM dla wyboru static_subset i metryki Manhattan. Jest to model osiągający najlepsze wyniki spośród modeli GMM.

Silhouette:

## [1] 0.1477146

DB score:

## [1] 2.179408

Dunn index:

## [1] 0.1175192

Indeksy FM i AR (podobieństwo do “prawdziwego podziału”):

## [1] 0.5734906
## [1] 0.4686055

7.4 Podsumowanie

GMM z wyborem static_subset i metryką Manhattan osiągnął najlepsze wyniki. Również dobrze poradził sobie random_spread z metryką euklidesową. pozostałe algorytmy dzieliły zbiór na \(6\) klastrów nierównomiernie.

8 Podsumowanie

Podział na \(6\) klastrów nie jest łątwy do osiągnięcia. Klastry nachodzą na siebie, niezawsze są wyraźnie rozgraniczone, trudno jest też znaleźć ich bardziej zagęszczone miejsca. Najlepiej poradził sobie algorytm genie, nawet pomimo faktu, że podzielił klastry nierównomiernie (tzn. 2-4, a nie 3-3). Podział na \(2\) z kolei jest bardzo oczywisty, widoczny nawet gołym okiem. Algorytmy nie miały problemów z rozdzieleniem dwóch grup czynności.

9 Oświadczenie

Oświadczamy, że niniejsza praca stanowiąca podstawę do uznania osiągnięcia efektów uczenia się z przedmiotu “Wstęp do Uczenia Maszynowego” została wykonana przez nas samodzielnie.

Przemysław Adam Chojecki, 298814

Michał Wdowski, 298848